package com.rr.learningdemo.newfeature;

import java.util.Optional;

/**
 * @author RR
 * @date 2021/3/16 17:12
 */
//借助Optional可以使我们避免显示地进行判空，使代码更简洁一点
public class OptionTest {

    public static void main(String[] args) {
        Integer a = 10;
        Integer b = null;
        Optional<Integer> a1 = Optional.ofNullable(a);
        Optional<Integer> b1 = Optional.ofNullable(b);
        //这个也可以，不过当传入为null时会抛空指针异常
//        Optional.of(a);
//        Optional.of(b);
        System.out.println(sum(a1, b1));
    }

    public static int sum(Optional<Integer> a, Optional<Integer> b) {
        System.out.println("存在a:" + a.isPresent());
        System.out.println("存在b:" + b.isPresent());
        //get可以获得值，如果可能为空，可用b.orElse(0)当值为空则给一个默认值
        int sum = a.get() + b.orElse(0);
        return sum;
    }
}
